//
//  DataCenter.m
//  TravelGuideMdd
//
//  Created by BigPolarBear on 13-5-14.
//  Copyright (c) 2013年 mafengwo.com. All rights reserved.
//

#import "DataCenter.h"
#import "DBHelper.h"
#import "ConstApi.h"
#import "ConstPath.h"
#import "NSString+SystemPath.h"
#import "DBEngine.h"

#import "DBHelper+Service.h"

//__attribute__((constructor)) static void initDataCenter()
//{
//    [[DataCenter defaultCenter] appLaunched];
//}

@interface DataCenter()
{

}

#pragma mark ------------ 私有方法声明区（内部会被重复使用的）


@end


#pragma mark
@implementation DataCenter


/** 单例 */
+(DataCenter*)defaultCenter
{
    static DataCenter* _dataCenter = nil;
    
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        _dataCenter = [[DataCenter alloc] init];
        
    });
    
    return _dataCenter;
}

#pragma mark ---------- 代码实现

-(void)appLaunched
{
    [self initStrorageStruct];
    [self initCacheResource];
}

-(id)init
{
    self = [super init];
    if (self) {
    }
    
    return self;
}

#pragma mark ------ 初始化 与 历史数据迁移
/** 初始化应用存储架构（文件系统结构，数据库创建） */
-(void)initStrorageStruct
{
    // 创建工作目录
    [self createWorkingFolder];
    
    // 创建sqlite数据库（每次都要执行，确保新增的表也创建出来）
    [self createDatabase];
    
    // 迁移历史数据（由TransferCenter来负责处理）
}

/** 创建工作目录 */
-(void)createWorkingFolder
{
    NSFileManager* fmgr = [NSFileManager defaultManager];
    
    // 主工作目录
    [fmgr createDirectoryAtPath:kPATH_Workshop withIntermediateDirectories:YES attributes:nil error:nil];
    
    // 设置不要备份
    NSURL* workPathUrl = [NSURL fileURLWithPath:kPATH_Workshop];
    [workPathUrl setDoNotBackup];
}

/** 创建sqlite数据库 */
-(void)createDatabase
{
    // 创建数据库文件
    [[DBEngine sharedInstance].databaseQueue inDatabase:^(FMDatabase *db) {
        [DBHelper executeCreateDatabase:db];
    }];
}


#pragma mark 初始化缓存数据
-(void)initCacheResource
{
//    NSString* sdWebImagePath = [NSString stringWithFormat:@"%@/Library/Caches/com.hackemist.SDWebImageCache.default",NSHomeDirectory()];
//    NSFileManager* mgr = [NSFileManager defaultManager];
//    if (![mgr fileExistsAtPath:sdWebImagePath isDirectory:nil]) {
//        // 无SDWebImage的缓存目录
//        [mgr createDirectoryAtPath:sdWebImagePath
//       withIntermediateDirectories:YES
//                        attributes:nil
//                             error:nil];
//    }
//    
//    // 如果缺缓存文件，则从包里复制过去
//    NSString* bundlePath = [[NSBundle mainBundle] pathForResource:@"SDWebImageCache" ofType:@"bundle"];
//    NSError *error = nil;
//    NSArray *files = [mgr contentsOfDirectoryAtPath:bundlePath error:&error];
//    
//    if (error) {
//        return;
//    }
//    
//    for (NSString *filename in files) {
//        NSString* currentPathFile = [NSString stringWithFormat:@"%@/%@",sdWebImagePath,filename];
//        if (![mgr fileExistsAtPath:currentPathFile isDirectory:nil]) {
//            NSString* fromPathFile = [NSString stringWithFormat:@"%@/%@",bundlePath,filename];
//            [mgr copyItemAtPath:fromPathFile toPath:currentPathFile error:nil];
//        }
//    }
}


@end
